package com.dpteam.dao;

import com.dpteam.model.Order;
import com.dpteam.util.Page;

import java.time.LocalDateTime;
import java.util.List;

/**
 * Created with IntelliJ IDEA.
 * User: luolei
 * Date: 2016/1/7
 * Time: 16:49
 */
public interface OrderDao extends BaseDao<Order> {


    /**
     * 按会员查询
     */
    List<Order> findByMemberId(Integer memberId,Page page);

    /**
     * 按收银员查询
     */
    List<Order> findByUserId(Integer userId,Page page);

    /**
     * 按时间查询
     */
    List<Order> findByTime(LocalDateTime fromTime,LocalDateTime toTime,Page page);

    /**
     * 按收银员和时间查询
     */
    List<Order> findByUserIdAndTime(Integer userId,LocalDateTime fromTime,LocalDateTime toTime,Page page);


    /**
     * 删除（会级联删除）
     */
    int deleteOrderById(Integer id);

    /**
     * 查询指定年份订单
     * @param year
     * @return
     */
    List<Order> findByYear(int year);

    /**
     * 查询指定时间段内订单
     * @param begin
     * @param end
     * @return
     */
    List<Order> findBetween(LocalDateTime begin, LocalDateTime end);

    /**
     * 指定年份的利润
     * @param year
     * @return
     */
    double sumProfit(int year);

    /**
     * 指定年份的营业额
     * @param year
     * @return
     */
    double sumSell(int year);

    /**
     *
     * @param year
     * @param month
     * @return
     */
    double sumProfit(int year, int month);

    /**
     *
     * @param year
     * @param month
     * @return
     */
    double sumSell(int year, int month);

}
